﻿using netDxf;
using netDxf.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Merge
{
    public interface IDxf
    {
        DxfDocument ReplaceInsertAndRead(string dxfFile, string hash, Action<string, bool> updateMsg);
        void CalcCellRect(Cell cell, IEnumerable<EntityObject> entities, Action<string, bool> updateMsg);
        void CloneDxf(Cell cell, Action<string, bool> updateMsg);
        void AddText(DxfDocument doc, string s, double x, double y, double height);
        void Add3Lines(DxfDocument doc,
  double ax1, double ay1, double ax2, double ay2,
  double bx1, double by1, double bx2, double by2,
  double cx1, double cy1, double cx2, double cy2,
  bool appendAnotherVerticalLine
  );
        void AddFolderIndexLine(DxfDocument doc, int fullDir2ToIndex,
  double gridLeftX, double gridButtomY, double gridWidth);

        void MergeSizeType(double gridWidth,
            double gridHeight,
            IEnumerable<Cell> cells,
            string outputDxfFile,
            LinkLabel lbl,
            IMergeSettings settings,
            Action<string, bool> updateMsg,
            Action<LinkLabel, bool> UpdateLableColor,

            Filters filters,
            Dictionary<Filter, int> dicNameOutOrder,
            Dictionary<string, string> fullDir2ToConterDict,
            Dictionary<string, int> fullDir2ToIndexDict);

    }
}
